#ifndef GAMEUI_H
#define GAMEUI_H
#include <qpainter.h>
#include <QRect>
#include <QVector>
#include<QPushButton>
#include <QWidget>
#include <QFile>
#include <QString>
#include <QStringList>
#include <QTime>
#include "resultui.h"
namespace Ui {
class GameUI;
}

class GameUI : public QWidget
{
    Q_OBJECT

public:
    int score=0;//记录分数

    explicit GameUI(QWidget *parent = 0);
    ~GameUI();
    void paintEvent(QPaintEvent *event);//重写绘图事件
    void initplane(int options=0);//初始化飞机
    void keyPressEvent(QKeyEvent *event);//键盘事件
    void getWords();//从文件中读取单词
    void Sleep(int msec);//延迟函数，暂停一段时间后执行下一句
    void setParameter(double pct,int gt, int mw, int npc, QString fm);//将设置界面的参数传入
private:
    Ui::GameUI *ui;
    QRect planepicture;//飞机的图片
    QTimer * timer;//计时器
    QTime * timeP;
    int direction;//记录敌机初始x轴的移动方向
    bool blsRun;//开始程序，保证只初始化一次
    bool blsOver=false;//结束程序
    bool destroyplane;
    int timeRecord=0;//记录过了多少时间
    int timebomb1=0;
    float newplane=0;//越来越快
    int distroynumber=0;//越来越快
    QString filename=":/defaultText/test1.txt";//默认为系统自定义D:/桌面/新建 文本文档.txt
    QStringList words;//从文件中读取的单词组
    int planeIndex=0;//飞机单词索引
    QString inputWord="";//用户输入的单词
    int wrongCount=0;//错误的单词数
    QString wrongWords[20];//记录错误的单词
    struct Plane
    {
        int tag=0;//0-正常飞行的敌机 1-被击毁的敌机 2-逃脱的敌机
        int x,y;//左上角坐标
        int xdirection;//初始时x轴运动方向
        char letter;//飞机上的字母
        QString word;//飞机上的单词
    };


    double planeCount_time=0.05;//控制飞机的生成间隔时间
    int gameTime=60000;//游戏时长
    int Max_wrong=10;//单词错误数最大值
    QVector<Plane> planes;//所有的敌机
    int newplaneTime=15;//控制飞机的生成间隔时间
    ResultUI * resultP;
private slots:
    void planeupdate();//定义为槽函数，
};

#endif // GAMEUI_H
